Technical Field
The present invention generally relates to optimizing mixed-language applications and, more particularly, to using a signature to indicate a transfer of control between a high-level language or assembly caller into another high-level language subprogram.
Description of the Related Art
Some applications run in a mixed environment, where code is written in different languages to perform the application's tasks. For example, the body of the program may be written in a low-level language such as assembly, while transaction application programs may be written in high-level languages such as COBOL or PL/I. In such an environment, the assembler program may repeatedly invoke the transaction programs. These calls cross a language boundary and may cause significant overhead in runtime processing.
When one program calls another, the called program can optimize its startup routines if the language environment is already in place. For example, if a first COBOL program calls a second COBOL program, the second COBOL program can verify that the program that called it was also written in COBOL and bypass its initialization. In contrast, if the first program were written in a different language, the COBOL program has no assurance that its language environment has been initialized. As a result, the called COBOL program will check for itself whether its environment has been initialized. If the COBOL program is called many times, these checks represent a needless waste of computing resources.